//******************************
// fifo 传输文件
// ****************************
#include "comm.h"
int main()
{
  umask(0);
  if(-1 == mkfifo(FIFO_FILE, 0644)){
    perror("mkfifo");
    return 1;
  }
  
  int fd = open(FIFO_FILE, O_RDONLY);
  if(fd < 0){
    perror("open error");
    return 2;
  }
  // 打开或创建文件 存储来自客户端的文件
  int outfile = open("fileback.txt", O_CREAT|O_WRONLY, 0644);
  char buf[64];//读的缓冲区
  while(1){
    buf[0]=0;//字符串清空
    ssize_t s = read(fd, buf, sizeof(buf)-1);//sizeof(buf)-1是期望读取多少内容
    if(s > 0){//success read
      write(outfile, buf, s);//将内容写到已经打开或创建的outfile文件描述符文件中
    }
    else if(0 == s){//对方关闭
      printf("client quit, me quit  too\n");//文件关闭了
      break;
    }
    else{
      perror("read error");
      break;
    }
  }
  close (fd);//开始打开，执行完成结束关闭
  close(outfile);
  return 0;
}
